草庐IT

spring - 不同集合的QueryDsl MongoRepository

全部标签

c# - 从 C# 方法返回不同类型

我有一个方法:public???AuthManager.Login(Credentialscredentials)这是该方法的一组有效输出值:成功(+accountId)失败:帐户被锁定失败:未找到用户名失败:密码无效(+失败尝试次数)根据返回类型向用户显示不同的View(是的,AccountLockedOut的View不同于InvalidPassword)。我可以选择:publicclassLoginAttemptResult{publicboolSucceeded{get;set;}publicAccountIdAccountId{get;set;}//forwhensuccess

C# OPC 应用程序相同的代码,但工作方式不同

我正在开发一个C#自定义OPC客户端,我开始在控制台应用程序中编写以提高速度,一切都按照我的意愿完美运行。然后我决定做一个windows窗体应用程序来获得视觉体验。Windows窗体应用程序只是简单地停止工作,大约一分钟后停止从OPC服务器读取数据。控制台应用程序不断读取和读取的位置。我在Debug模式下也找不到任何明显的东西。我绝对是在抓紧救命稻草,希望有人能给出一些启示。每个应用程序都使用OPCFoundation提供的.dll文件。这是控制台应用程序staticvoidMain(string[]args){Opc.URLurl=newOpc.URL("opcda://localh

c# - "dynamic"类型能否在通用集合 <dynamic> 中安全变化?

基于我对thisquestion的回答,我想检查一下我对即将推出的C#4dynamic类型的理解。在这种情况下,我们有一个集合表示从未知数据库表中提取的记录中的字段。较旧的代码(.Net4之前的版本)需要此类集合保存类型为Object的项目。除了这样一个集合的优点,我想知道当您将Object更改为dynamic时会发生什么。一方面,我希望由于动态类型的事情都是在运行时解决的,所以只要程序员没有对特定项目的预期类型进行任何拼写错误或错误,一切都应该很好集合。另一方面,我对上一句中的“所有”这个词感到疑惑。运行时是否可能缓存第一次访问动态属性的结果,导致使用不同类型的后续调用失败?

c# - 如何模拟不同的CPU频率和限制RAM

我必须用C#构建一个模拟器。该模拟器应该能够以可配置的CPU速度和有限的RAM大小运行第二个线程,例如144MHz和50MB。我当然知道模拟器永远无法像真实硬件那样准确。但我尝试获得几乎相似的性能。目前我正在考虑创建一个我会不时停止/休眠的线程。根据所需的CPU速度,模拟器应调整该线程的sleep时间,从而模拟不同的CPU频率。为了衡量实现的速度,我考虑使用PerformanceCounters。但是使用这种方法我遇到了一个问题,我不知道如何限制线程可以使用的RAM大小。您对如何实现这样的模拟器有任何想法吗?提前致谢! 最佳答案 使

c# - Rx 运算符到不同的序列

重要:有关结果的描述和更多详细信息,请同时查看我的回答我需要对通常被复制的一系列对象/事件进行分组和过滤,并使用TimeSpan间隔对它们进行缓冲。我尝试用一​​些大理石图更好地解释它:X-X-X-X-X-Y-Y-Y-Z-Z-Z-Z-X-X-Y-Z-Z会产生X---Y---Z---X---Y---Z其中X、Y和Z是不同的事件类型,'---'表示间隔。此外,我还想通过一个关键属性来区分它在所有类型上都可用,因为它们有一个共同的基类:X,Y,Z:A并且A包含一个属性Key。使用符号X.a表示X.Key=a,最终示例将是:X.a-X.b-X.a-Y.b-Y.c-Z.a-Z.a-Z.c-Z.b

c# - 是否可以将事件处理程序放在与调用者不同的线程上?

假设我有一个名为Tasking的组件(我无法修改),它公开了一个方法“DoTask”,该方法执行一些可能冗长的计算并通过事件TaskCompleted返回结果。通常这是在用户获得结果后关闭的Windows窗体中调用的。在我的特定场景中,我需要将一些数据(数据库记录)与TaskCompleted中返回的数据相关联,并使用它来更新数据库记录。我研究了使用AutoResetEvent来通知事件何时被处理。问题是AutoResetEvent.WaitOne()将阻塞并且永远不会调用事件处理程序。通常AutoResetEvents被称为一个单独的线程,所以我猜这意味着事件处理程序与调用的方法位于

c# - Visual Studio 2010 中的重构选项在 C# 和 VB 之间有所不同

在VS2010C#中,当我右键单击时,会出现“重构”菜单,其中包含以下选项:重命名提取方法封装字段提取接口(interface)删除参数重新排序参数这些选项在VS2010VB.Net中可用吗?当我右键单击时,我只能看到“重命名”吗? 最佳答案 “重命名”是VB.Net唯一的重构。C#绝对更健壮。查看CodeRushXpress.它是完整工具的精简免费版本,但它可能会提供您缺少的一些重构。就个人而言,我使用并且非常喜欢Resharper.在我看来,物有所值。 关于c#-VisualStud

c# - 使用 var 或显式类型时模式匹配的不同行为

考虑以下乍一看很荒谬的模式匹配:strings=null;if(sisstringss)//falseif(sisstring)//false两者is都会返回false。但是,如果我们使用var,行为就会完全改变:strings=null;if(sisvarss)//true!?!如果在VS2017中将鼠标悬停在var上,类型是string但的行为是完全不同的。即使推断的类型相同,编译器也会做一些完全不同的事情。怎么会这样?这是一个错误吗?null类型是否以某种方式冒出? 最佳答案 C#语言引用确认行为是有意的。Apatternma

c# - 可观察集合 : calling OnCollectionChanged with multiple new items

请注意,我正在尝试使用NotifyCollectionChangedAction.Add操作而不是.Reset。后者确实有效,但对于大型收藏来说效率不高。所以我将ObservableCollection子类化:publicclassSuspendableObservableCollection:ObservableCollection出于某种原因,这段代码:privateList_cachedItems;...publicvoidFlushCache(){if(_cachedItems.Count>0){foreach(varitemin_cachedItems)Items.Add(i

c# - C# 类中私有(private)、 protected 、公共(public)和内部方法的性能有什么不同吗?

在C#类中,private、protected、public和internal方法的性能有什么不同吗?我对消耗更多处理器时间或RAM感兴趣。 最佳答案 我不知道正常调用有任何性能差异;当通过动态调用或反射访问时,更受限制的访问可能需要更多的工作,因为调用者可能需要更仔细地验证。在正常的JIT编译情况下,访问可以由CLR验证一次,然后视为理所当然。我猜想JIT编译(和IL验证)本身可能会因为更严格的访问而稍微慢一些-但我很难相信这会很重要。这应该绝对不是决定使用哪种辅助功能的一个因素,即使不知何故存在一些我不知道的微小性能差异。如果您